Quality of Service (QoS) for Internet traffic is important for applications such as video streaming, teleconferencing, and voice over Internet Protocol (VoIP) traffic. QoS control mechanisms may be implemented to provide different priorities to different data flows or to guarantee a certain level of performance to a data flow in accordance with requests from an application program. QoS guarantees are important especially if network capacity is limited such as for real-time streaming multimedia applications.
QoS for Internet traffic can be implemented using a queue manager interrupt service request arbiter with hardware support or by software. The software solution must simultaneously keep track of the number of packets serviced for each and every queue and compare and update them with the number of allowable packets to enable QoS. This method extracts substantial processing overhead from the core processor. Additionally, dynamic change of queue priorities and the scalability of the number of queues are not straight forward.